package com.passive.lock.utils.tree;

import java.util.ArrayList;
import java.util.List;
import com.passive.lock.model.vo.TRouteVo;

public class TreeRouteUtil {
	 /**
	    * @Title: getfatherNode
	    * @Description 方法描述: 父节点
	    * @param 设定文件： @param treeDataList
	    * @param 设定文件： @return    
	    * @return 返回类型：List<TRouteVo>    
	    * @throws
	    * @date 最后修改时间：2015年6月9日 下午6:39:26
	    */
	    public final static List<TRouteVo> getfatherNode(List<TRouteVo> treeDataList) {
	        List<TRouteVo> newTreeDataList = new ArrayList<TRouteVo>();
	        for (TRouteVo TRouteVo : treeDataList) {
	            if(TRouteVo.getProuteid()==null||"".equals(TRouteVo.getProuteid())) {
	                //获取父节点下的子节点
	                TRouteVo.setChildren(getChildrenNode(TRouteVo.getRouteid(),treeDataList));
	                //TRouteVo.setOpen(true);
	                newTreeDataList.add(TRouteVo);
	            }
	        }
	        return newTreeDataList;
	    }
	     
	    /**
	    * @Title: getChildrenNode
	    * @Description 方法描述: 子节点
	    * @param 设定文件： @param pid
	    * @param 设定文件： @param treeDataList
	    * @param 设定文件： @return    
	    * @return 返回类型：List<TRouteVo>    
	    * @throws
	    * @date 最后修改时间：2015年6月9日 下午6:39:50
	    */
	    private final static List<TRouteVo> getChildrenNode(Integer pid , List<TRouteVo> treeDataList) {
	        List<TRouteVo> newTreeDataList = new ArrayList<TRouteVo>();
	        for (TRouteVo TRouteVo : treeDataList) {
	            if(TRouteVo.getProuteid()==null||"".equals(TRouteVo.getProuteid()))  continue;
	            //这是一个子节点
	            if(TRouteVo.getProuteid().equals(pid)){
	                //递归获取子节点下的子节点
	          
	                TRouteVo.setChildren(getChildrenNode(TRouteVo.getRouteid(),treeDataList));
	                newTreeDataList.add(TRouteVo);
	            }
	        }
	        return newTreeDataList;
	    }
}
